// permission是专门用来处理前端的页面权限的
import { asyncRoutes, constantRoutes } from '@/router'

export default {
  namespaced: true, // 开启命名空间
  state: {
    // 提供给侧边栏进行展示
    routes: constantRoutes // 所有的路由规则
    // 该用户的路由映射表
  },
  getters: {},
  mutations: {
    // 设置路由规则
    setRoutes(state, routes) {
      state.routes = [...constantRoutes, ...routes]
    }
  },
  actions: {
    // 获取用户的菜单权限，并筛选出属于当前用户的动态路由
    async filterRoutes(context, data) {
      console.log(data)
      const userAsyncRoutes = []
      asyncRoutes.forEach((item) => {
        // console.log(item)
        if (data.includes(item.name)) {
          userAsyncRoutes.push(item)
        }
      })
      // 把*通配的404界面放在动态路由的最后面
      userAsyncRoutes.push({ path: '*', redirect: '/404', hidden: true })
      context.commit('setRoutes', userAsyncRoutes)
      // 返回筛选好的用户的动态路由映射数组
      // console.log(userAsyncRoutes)
      return userAsyncRoutes
    }
  }
}
